package servlet_stanza_test;

import static org.junit.Assert.*;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class ListaStanzeTest2 {

	@Before
	public void setUp() throws Exception {
		this.lista=new listaStanze();
	}

	@After
	public void tearDown() throws Exception {
	}

	
	//Test con una casa presente nel database
		@Test
		public final void testDoGet() throws ServletException, IOException {


			HttpServletRequest request = mock(HttpServletRequest.class);       
	        HttpServletResponse response = mock(HttpServletResponse.class); 

	        when(request.getParameter("id_casa")).thenReturn("4");
	        lista.doGet(request, response);
	        assertNotNull(lista.getStanze());
		}
		
		//Test con una casa non presente nel database
			@Test
			public final void testDoGet2() throws ServletException, IOException {


				HttpServletRequest request = mock(HttpServletRequest.class);       
		        HttpServletResponse response = mock(HttpServletResponse.class); 

		        when(request.getParameter("id_casa")).thenReturn("200");
		        lista.doGet(request, response);
		        assertEquals(lista.getStanze().size(), 0);
		        
			}
			
			// test con l'inserimento di lettere invece di numeri nell'id casa
			
			@Test
			public final void testDoGet3() throws ServletException, IOException {


				HttpServletRequest request = mock(HttpServletRequest.class);       
		        HttpServletResponse response = mock(HttpServletResponse.class); 

		        when(request.getParameter("id_casa")).thenReturn("gggg");
		        lista.doGet(request, response);
		        //Mi aspetto una failure
		        assertNotNull(lista.getStanze());
		        
			}

	private listaStanze lista;
}
